local function search(table, tlen, str)
	for i = 1, tlen
		--print(table[i].name.." =?= "..str)
		if string.lower(table[i].name) == string.lower(str or "")
			--print("match")
			return i
		end
	end
end

RFW.SkinSecondColorDefault = {
	["sonic"] = SKINCOLOR_GREEN,
	["tails"] = SKINCOLOR_RED,
	["knuckles"] = SKINCOLOR_ICY,
	["amy"] = SKINCOLOR_PURPLE,
	["fang"] = SKINCOLOR_ORANGE,
	["metalsonic"] = SKINCOLOR_GOLD,
}

COM_AddCommand("secondcolor", function(p, secondcolor) //based on cosmetics hatcolor command, thanks to krabs
	local foundcolor = search(skincolors, #skincolors - 1, secondcolor)
	if foundcolor then
		secondcolor = foundcolor
	else
		secondcolor = tonumber($)
	end
	if secondcolor == nil or secondcolor < 0 or secondcolor > #skincolors - 1
		CONS_Printf(p, "Invalid Second Color!")
		return
	end
	p.secondcolor = secondcolor
end)

COM_AddCommand("secondcolor2", function(p, secondcolor) //dont discriminate again splitscreen players!
	local foundcolor = search(skincolors, #skincolors - 1, secondcolor)
	if foundcolor then
		secondcolor = foundcolor
	else
		secondcolor = tonumber($)
	end
	if secondcolor == nil or secondcolor < 0 or secondcolor > #skincolors - 1
		CONS_Printf(p, "Invalid Second Color!")
		return
	end
	p.secondcolor = secondcolor
end, COM_SPLITSCREEN)

/*COM_AddCommand("railcolor", function(p, railcolor) //based on cosmetics hatcolor command, thanks to krabs
	local foundcolor = search(skincolors, #skincolors - 1, railcolor)
	if foundcolor then
	 railcolor = foundcolor
	else
	 railcolor = tonumber($)
	end
	if railcolor == nil or railcolor < 0 or railcolor > #skincolors - 1
		CONS_Printf(p, "Invalid Rail Color!")
		return
	end
	p railcolor = railcolor
end)

COM_AddCommand("railcolor2", function(p, railcolor) //dont discriminate again splitscreen players!
	local foundcolor = search(skincolors, #skincolors - 1, railcolor)
	if foundcolor then
		railcolor = foundcolor
	else
		railcolor = tonumber($)
	end
	if railcolor == nil or railcolor < 0 or railcolor > #skincolors - 1
		CONS_Printf(p, "Invalid Rail Color!")
		return
	end
	p.railcolor = railcolor
end, COM_SPLITSCREEN)*/

addHook("PlayerThink", function(p) //failsafe for if secondcolor is nil
	if p.secondcolor == nil or p.secondcolor == SKINCOLOR_NONE then
		if not multiplayer then
			//if not (p.mo and p.mo.valid) then return end
			p.secondcolor = RFW.SkinSecondColorDefault[p.mo.skin] or p.skincolor
		else
			p.secondcolor = p.skincolor //or SKINCOLOR_BLUE //use prefered skin color over actual skincolor
		end
	end
end)